home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_c / cuj0896.zip / PLAUGER.ZIP / ALGORITH next >
Text File  |  1996-05-22  |  11KB  |  252 lines

  1. // algorithm standard header
  2. #ifndef _ALGORITHM_
  3. #define _ALGORITHM_
  4. ///namespace std {
  5. template<class InIt, class Fun>
  6.     Fun for_each(InIt first, InIt last, Fun op);
  7. template<class InIt, class OutIt>
  8.     OutIt copy(InIt first, InIt last, OutIt x);
  9. template<class BidIt1, class BidIt2>
  10.     BidIt2 copy_backward(BidIt1 first, BidIt1 last, BidIt2 x);
  11. template<class InIt1, class InIt2>
  12.     bool equal(InIt1 first, InIt1 last, InIt2 x);
  13. template<class InIt1, class InIt2, class Pred>
  14.     bool equal(InIt1 first, InIt1 last, InIt2 x, Pred pr);
  15. template<class FwdIt, class T>
  16.     void fill(FwdIt first, FwdIt last, const T& x);
  17. template<class OutIt, class Size, class T>
  18.     void fill_n(OutIt first, Size n, const T& x);
  19. template<class InIt1, class InIt2>
  20.     bool lexicographical_compare(InIt1 first1, InIt1 last1,
  21.         InIt2 first2, InIt2 last2);
  22. template<class InIt1, class InIt2, class Pred>
  23.     bool lexicographical_compare(InIt1 first1, InIt1 last1,
  24.         InIt2 first2, InIt2 last2, Pred pr);
  25. template<class T>
  26.     const T& max(const T& x, const T& y);
  27. template<class T, class Pred>
  28.     const T& max(const T& x, const T& y, Pred pr);
  29. template<class T>
  30.     const T& min(const T& x, const T& y);
  31. template<class T, class Pred>
  32.     const T& min(const T& x, const T& y, Pred pr);
  33. template<class InIt1, class InIt2>
  34.     pair<InIt1, InIt2> mismatch(InIt1 first, InIt1 last, InIt2 x);
  35. template<class InIt1, class InIt2, class Pred>
  36.     pair<InIt1, InIt2>
  37.         mismatch(InIt1 first, InIt1 last, InIt2 x, Pred pr);
  38. template<class T>
  39.     void swap(T& x, T& y);
  40. template<class InIt, class T>
  41.     InIt find(InIt first, InIt last, const T& val);
  42. template<class InIt, class Pred>
  43.     InIt find_if(InIt first, InIt last, Pred pr);
  44. template<class FwdIt>
  45.     FwdIt adjacent_find(FwdIt first, FwdIt last);
  46. template<class FwdIt, class Pred>
  47.     FwdIt adjacent_find(FwdIt first, FwdIt last, Pred pr);
  48. template<class InIt, class T>
  49.     iterator_traits<InIt>::distance_type
  50.         count(InIt first, InIt last, const T& val);
  51. template<class InIt, class Pred>
  52.     iterator_traits<InIt>::distance_type
  53.         count_if(InIt first, InIt last, Pred pr);
  54. template<class FwdIt1, class FwdIt2>
  55.     FwdIt1 search(FwdIt1 first1, FwdIt1 last1,
  56.         FwdIt2 first2, FwdIt2 last2);
  57. template<class FwdIt1, class FwdIt2, class Pred>
  58.     FwdIt1 search(FwdIt1 first1, FwdIt1 last1,
  59.         FwdIt2 first2, FwdIt2 last2, Pred pr);
  60. template<class FwdIt1, class FwdIt2>
  61.     FwdIt1 find_end(FwdIt1 first1, FwdIt1 last1,
  62.         FwdIt2 first2, FwdIt2 last2);
  63. template<class FwdIt1, class FwdIt2, class Pred>
  64.     FwdIt1 find_end(FwdIt1 first1, FwdIt1 last1,
  65.         FwdIt2 first2, FwdIt2 last2, Pred pr);
  66. template<class FwdIt1, class FwdIt2>
  67.     FwdIt1 find_first_of(FwdIt1 first1, FwdIt1 last1,
  68.         FwdIt2 first2, FwdIt2 last2);
  69. template<class FwdIt1, class FwdIt2, class Pred>
  70.     FwdIt1 find_first_of(FwdIt1 first1, FwdIt1 last1,
  71.         FwdIt2 first2, FwdIt2 last2, Pred pr);
  72. template<class FwdIt1, class FwdIt2>
  73.     void iter_swap(FwdIt1 x, FwdIt2 y);
  74. template<class FwdIt1, class FwdIt2>
  75.     FwdIt2 swap_ranges(FwdIt1 first, FwdIt1 last, FwdIt2 x);
  76. template<class InIt, class OutIt, class Unop>
  77.     OutIt transform(InIt first, InIt last, OutIt x, Unop unop);
  78. template<class InIt1, class InIt2, class OutIt, class Bop>
  79.     OutIt transform(InIt1 first1, InIt1 last1, InIt2 first2,
  80.         OutIt x, Bop op);
  81. template<class FwdIt, class T>
  82.     void replace(FwdIt first, FwdIt last,
  83.         const T& valo, const T& valn);
  84. template<class FwdIt, class Pred, class T>
  85.     void replace_if(FwdIt first, FwdIt last, Pred pr,
  86.         const T& val);
  87. template<class InIt, class OutIt, class T>
  88.     OutIt replace_copy(InIt first, InIt last, OutIt x,
  89.         const T& valo, const T& valn);
  90. template<class InIt, class OutIt, class Pred, class T>
  91.     OutIt replace_copy_if(InIt first, InIt last, OutIt x,
  92.         Pred pr, const T& val);
  93. template<class FwdIt, class Fun>
  94.     void generate(FwdIt first, FwdIt last, Fun fun);
  95. template<class OutIt, class Diff, class Fun>
  96.     void generate_n(OutIt first, Diff n, Fun fun);
  97. template<class FwdIt, class T>
  98.     FwdIt remove(FwdIt first, FwdIt last, const T& val);
  99. template<class FwdIt, class Pred>
  100.     FwdIt remove_if(FwdIt first, FwdIt last, Pred pr);
  101. template<class InIt, class OutIt, class T>
  102.     OutIt remove_copy(InIt first, InIt last, OutIt x,
  103.         const T& val);
  104. template<class InIt, class OutIt, class Pred>
  105.     OutIt remove_copy_if(InIt first, InIt last, OutIt x, Pred pr);
  106. template<class FwdIt>
  107.     FwdIt unique(FwdIt first, FwdIt last);
  108. template<class FwdIt, class Pred>
  109.     FwdIt unique(FwdIt first, FwdIt last, Pred pr);
  110. template<class InIt, class OutIt>
  111.     OutIt unique_copy(InIt first, InIt last, OutIt x);
  112. template<class InIt, class OutIt, class Pred>
  113.     OutIt unique_copy(InIt first, InIt last, OutIt x, Pred pr);
  114. template<class BidIt>
  115.     void reverse(BidIt first, BidIt last);
  116. template<class BidIt, class OutIt>
  117.     OutIt reverse_copy(BidIt first, BidIt last, OutIt x);
  118. template<class FwdIt>
  119.     void rotate(FwdIt first, FwdIt mid, FwdIt last);
  120. template<class FwdIt, class OutIt>
  121.     OutIt rotate_copy(FwdIt first, FwdIt mid, FwdIt last, OutIt x);
  122. template<class RanIt>
  123.     void random_shuffle(RanIt first, RanIt last);
  124. template<class RanIt, class Ranf>
  125.     void random_shuffle(RanIt first, RanIt last, Ranf& ranf);
  126. template<class BidIt, class Pred>
  127.     BidIt partition(BidIt first, BidIt last, Pred pr);
  128. template<class FwdIt, class Pred>
  129.     FwdIt stable_partition(FwdIt first, FwdIt last, Pred pr);
  130. template<class RanIt>
  131.     void sort(RanIt first, RanIt last);
  132. template<class RanIt>
  133.     void insertion_sort(RanIt first, RanIt last);
  134. template<class RanIt, class Pred>
  135.     void sort(RanIt first, RanIt last, Pred pr);
  136. template<class RanIt, class Pred>
  137.     void insertion_sort(RanIt first, RanIt last, Pred pr);
  138. template<class BidIt>
  139.     void stable_sort(BidIt first, BidIt last);
  140. template<class RanIt>
  141.     void partial_sort(RanIt first, RanIt m, RanIt last);
  142. template<class RanIt, class Pred>
  143.     void partial_sort(RanIt first, RanIt m, RanIt last, Pred pr);
  144. template<class InIt, class RanIt>
  145.     RanIt partial_sort_copy(InIt first1, InIt last1,
  146.         RanIt first2, RanIt last2);
  147. template<class InIt, class RanIt, class Pred>
  148.     RanIt partial_sort_copy(InIt first1, InIt last1,
  149.         RanIt first2, RanIt last2, Pred pr);
  150. template<class RanIt>
  151.     void nth_element(RanIt first, RanIt nth, RanIt last);
  152. template<class RanIt, class Pred>
  153.     void nth_element(RanIt first, RanIt nth, RanIt last, Pred pr);
  154. template<class FwdIt, class T>
  155.     FwdIt lower_bound(FwdIt first, FwdIt last, const T& val);
  156. template<class FwdIt, class T, class Pred>
  157.     FwdIt lower_bound(FwdIt first, FwdIt last,
  158.         const T& val, Pred pr);
  159. template<class FwdIt, class T>
  160.     FwdIt upper_bound(FwdIt first, FwdIt last, const T& val);
  161. template<class FwdIt, class T, class Pred>
  162.     FwdIt upper_bound(FwdIt first, FwdIt last,
  163.         const T& val, Pred pr);
  164. template<class FwdIt, class T>
  165.     pair<FwdIt, FwdIt> equal_range(FwdIt first, FwdIt last,
  166.         const T& val);
  167. template<class FwdIt, class T, class Pred>
  168.     pair<FwdIt, FwdIt> equal_range(FwdIt first, FwdIt last,
  169.         const T& val, Pred pr);
  170. template<class FwdIt, class T>
  171.     bool binary_search(FwdIt first, FwdIt last, const T& val);
  172. template<class FwdIt, class T, class Pred>
  173.     bool binary_search(FwdIt first, FwdIt last,
  174.         const T& val, Pred pr);
  175. template<class InIt1, class InIt2, class OutIt>
  176.     OutIt merge(InIt1 first1, InIt1 last1,
  177.         InIt2 first2, InIt2 last2, OutIt x);
  178. template<class InIt1, class InIt2, class OutIt,
  179.     class Pred>
  180.     OutIt merge(InIt1 first1, InIt1 last1,
  181.         InIt2 first2, InIt2 last2, OutIt x, Pred pr);
  182. template<class BidIt>
  183.     void inplace_merge(BidIt first, BidIt mid, BidIt last);
  184. template<class BidIt, class Pred>
  185.     void inplace_merge(BidIt first, BidIt mid, BidIt last,
  186.         Pred pr);
  187. template<class InIt1, class InIt2>
  188.     bool includes(InIt1 first1, InIt1 last1,
  189.         InIt2 first2, InIt2 last2);
  190. template<class InIt1, class InIt2, class Pred>
  191.     bool includes(InIt1 first1, InIt1 last1,
  192.         InIt2 first2, InIt2 last2, Pred pr);
  193. template<class InIt1, class InIt2, class OutIt>
  194.     OutIt set_union(InIt1 first1, InIt1 last1,
  195.         InIt2 first2, InIt2 last2, OutIt x);
  196. template<class InIt1, class InIt2, class OutIt,
  197.     class Pred>
  198.     OutIt set_union(InIt1 first1, InIt1 last1,
  199.         InIt2 first2, InIt2 last2, OutIt x, Pred pr);
  200. template<class InIt1, class InIt2, class OutIt>
  201.     OutIt set_intersection(InIt1 first1, InIt1 last1,
  202.         InIt2 first2, InIt2 last2, OutIt x);
  203. template<class InIt1, class InIt2, class OutIt,
  204.     class Pred>
  205.     OutIt set_intersection(InIt1 first1, InIt1 last1,
  206.         InIt2 first2, InIt2 last2, OutIt x, Pred pr);
  207. template<class InIt1, class InIt2, class OutIt>
  208.     OutIt set_difference(InIt1 first1, InIt1 last1,
  209.         InIt2 first2, InIt2 last2, OutIt x);
  210. template<class InIt1, class InIt2, class OutIt,
  211.     class Pred>
  212.     OutIt set_difference(InIt1 first1, InIt1 last1,
  213.         InIt2 first2, InIt2 last2, OutIt x, Pred pr);
  214. template<class InIt1, class InIt2, class OutIt>
  215.     OutIt set_symmetric_difference(InIt1 first1, InIt1 last1,
  216.         InIt2 first2, InIt2 last2, OutIt x);
  217. template<class InIt1, class InIt2, class OutIt,
  218.     class Pred>
  219.     OutIt set_symmetric_difference(InIt1 first1, InIt1 last1,
  220.         InIt2 first2, InIt2 last2, OutIt x, Pred pr);
  221. template<class RanIt>
  222.     void push_heap(RanIt first, RanIt last);
  223. template<class RanIt>
  224.     void pop_heap(RanIt first, RanIt last);
  225. template<class RanIt, class Pred>
  226.     void pop_heap(RanIt first, RanIt last, Pred pr);
  227. template<class RanIt>
  228.     void make_heap(RanIt first, RanIt last);
  229. template<class RanIt>
  230.     void sort_heap(RanIt first, RanIt last);
  231. template<class RanIt, class Pred>
  232.     void sort_heap(RanIt first, RanIt last, Pred pr);
  233. template<class FwdIt>
  234.     FwdIt max_element(FwdIt first, FwdIt last);
  235. template<class FwdIt, class Pred>
  236.     FwdIt max_element(FwdIt first, FwdIt last, Pred pr);
  237. template<class FwdIt>
  238.     FwdIt min_element(FwdIt first, FwdIt last);
  239. template<class FwdIt, class Pred>
  240.     FwdIt min_element(FwdIt first, FwdIt last, Pred pr);
  241. template<class BidIt>
  242.     bool next_permutation(BidIt first, BidIt last);
  243. template<class BidIt, class Pred>
  244.     bool next_permutation(BidIt first, BidIt last, Pred pr);
  245. template<class BidIt>
  246.     bool prev_permutation(BidIt first, BidIt last);
  247. template<class BidIt, class Pred>
  248.     bool prev_permutation(BidIt first, BidIt last, Pred pr)
  249. ///};    // end of namespace std
  250. #endif /* _ALGORITHM_ */
  251.  
  252.